C语言中<<是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/29 23:50:00
char x=3,y=6,z;
z=x^y<<2;

0011
0110
0101=5
我先知道接下是怎么弄得.
谢谢!

一楼回答的是正解,它和+=、-=的用法类似。
其实:
a=10;
b=3;
a%=b;//等价于a=a%b其实现在a就是1

int x=3,y=6,z;
z=x^y<<2;
这个答案应该是27,<<为左移运算符,优先级比^高,所以y左移两位相等于4,再和x做异或运算得27.
y<<2==11000
x=00011
异或==11011化成十进制便等于27

<< 是左移运算符。
8位
00000101 向左移动两位变为00010100后面补两个0结果就是16+4=20.

右移

移位
int b = 1;
b= b << 2 = 4

左移相当於乘2, 右移相当於除2, 为数不够补0

按位与
将数位左移

一中重载的符号,一般出现在cin、cout中